This invention relates to artificial intelligence.
Simulating human intelligence in natural language interactions has long been a goal of artificial intelligence research. An early attempt was ELIZA. It was a computer program written by Joseph Weizenbaum to simulate a psychoanalysis session. A user (pretending to be a mental patient) would type a sentence of text (in English), and then ELIZA would respond with a sentence as a psychoanalyst might do. The interface was similar to what is now known as an instant messaging or chat program. It worked by having pre-programmed responses that were varied based on applying a pattern matching algorithm to the patient's last sentence.
More recent technologies have allowed chat robots (driven by computer programs) to more realistically mimic the responses of a human. A good example is A.L.I.C.E. (aka Alicebot), published by Dr. Richard Wallace. It won the 2000 and 2001 Loebner Prize by fooling some judges that it was a real person. The source code is readily available on the internet. The natural language information is stored in a knowledge database using a language called AIML (artificial intelligence markup language).
Applications of computerized natural language processing include online technical support. Companies sell products to customers who have questions, so they have technical support personnel who answer questions. In some cases, companies are able to use automation to answer the more common questions. The customer may ask a question in English, and a computer refers to a knowledge base to find an appropriate answer.
Another application is in web portals. For example, “Ask Jeeves” (www.ask.com) has a search engine that accepts natural language queries. Web portals like this often offer free services to the public, and then try to make money by selling advertising or customized services.
Each chat robot has its own personality. The personality is a function of the knowledge base, the rules for generating responses, and other robot implementation details. In commercial applications, different robots might be tuned for different types of users and queries.
Web servers commonly service many users simultaneously. If users wish to access different chat robots, and if each chat robot requires substantial computing resources, then multiple chat sessions might overwhelm the capabilities of the server.
There is a need for a computer system to be able to efficiently manage many different chat robots at once. Ordinary multi-tasking is one approach to managing multiple robots on a computer server, but each robot can require a lot of computer resources, and the multi-tasking of a number of robots can overload a computer.
There is also a need for web portals to offer more customized natural language services to users.